package spt.mc.demo.entity;

import java.util.SortedMap;
import java.util.TreeMap;
import cn.hutool.core.util.StrUtil;
import lombok.Data;
import lombok.experimental.Accessors;


/**
 * @author spt
 * @date 2023/04/14 16:16
 * @Description: api电梯采集数据
 **/
@Data
@Accessors(chain = true)
public class SendElevatorData {

	/**appid*/
    private String appid;

    /** 电梯注册代码*/
    private String sn;
    
    /** 电梯设备代码*/
    private String deviceCode;

    /** 电梯编码*/
    private String code;
    
    /**
     * 在线状态 1在线，0离线
     * */
    private Integer isIotOnline;
    /**
     * 电梯运行状态 1运行,0停止
     * */
    private Integer liftRunningStatus;
    /**
     *轿厢运行方向 1上，0下，-1无
     * */
    private Integer  runningDirection;
    /**
     * 加速度 m/s^2
     * */
    private Double  acceleration;
    /**
     * 减速度 m/s^2
     * */
    private Double  deceleration;
    /**
     * 速度 m/s
     * */
    private Double  speed;
    /**
     *当前轿厢位置 楼层
     * */
    private Integer  currentFloor;
    /**
     *轿厢门状态 1开,0关
     * */
    private Integer doorStatus;
    /**
     * 超载开关状态 1开,0关
     * */
    private Integer isOverload;
    
    public SortedMap<String,Object> converSortedMap(SendElevatorData elevatorData){
        SortedMap<String,Object> map=new TreeMap<String, Object>();
        map.put("appid",elevatorData.appid);
        if(StrUtil.isNotEmpty(elevatorData.sn)) {
            map.put("sn", elevatorData.sn);
        }
        if(StrUtil.isNotEmpty(elevatorData.code)) {
            map.put("code", elevatorData.code);
        }
        if(StrUtil.isNotEmpty(elevatorData.deviceCode)) {
            map.put("deviceCode", elevatorData.deviceCode);
        }
        map.put("isIotOnline",elevatorData.isIotOnline);
        map.put("liftRunningStatus",elevatorData.liftRunningStatus);
        map.put("runningDirection",elevatorData.runningDirection);
        map.put("acceleration",elevatorData.acceleration);
        map.put("deceleration",elevatorData.deceleration);
        map.put("speed",elevatorData.speed);
        map.put("currentFloor",elevatorData.currentFloor);
        map.put("doorStatus",elevatorData.doorStatus);
        map.put("isOverload",elevatorData.isOverload);
        return map;
    }
}
